package com.zheng.pvz.view
{
	import com.zheng.pvz.action.IAction;
	import com.zheng.pvz.model.proxy.DisplayProxy;
	import com.zheng.pvz.utils.NumberToCoo;
	
	import flash.display.DisplayObjectContainer;
	import flash.geom.Point;
	
	/**
	 * 僵尸父类，被继承 
	 * @author Administrator
	 * 
	 */
	public class ZombiesClass extends HitObjectClass implements IHitObject
	{
		public static  const TYPE:String="Zombies_Class";
		
		
		public function ZombiesClass(contain:DisplayObjectContainer,zombiesProxy:DisplayProxy)
		{
			super(contain,zombiesProxy);
		}
		/**
		 * 添加僵尸的行动方式，如：行走、跳跃、跑步、潜水
		 * 在tick方法中对行为做判断
		 * 
		 */
		override public function addAction(action:IAction):void{
			super.addAction(action);
		}
		/**
		 *僵尸有多种行动方式，如潜水，跳远，walk来判断当前使用何种行动方式
		 * 
		 */
		override public function tick(timeSpan:uint):void{
			//计算僵尸处于哪个tile中
			this.x-=1;
			var p:Point=NumberToCoo.getInstance().cooToNum(new Point(this.x,this.y));
			if(proxy.row!=p.x){
				proxy.row=p.x;
			}
			if(proxy.cols!=p.y){
				proxy.cols=p.y;
			}
		}
		/**
		 *改变状态 
		 * @param num 状态值
		 * 
		 */
		override public function changedStatus(str:String):void{
			super.changedStatus(str);
		}
		/**
		 *消亡 
		 * 
		 */
		override public function delThis():void{
			super.delThis();
		}
		override public function getType():String{
			return ZombiesClass.TYPE;
		}
	}
}